<template>
  <div>
    <UploadExcel
      :on-success="handleSuccess"
    />
  </div>
</template>
<script>
import { formatExcelDate } from '@/utils/index.js'
import { importEmployee } from '@/api/employee'
import UploadExcel from '@/components/UploadExcel'
export default {
  name: 'Import',
  components: {
    UploadExcel
  },
  methods: {
    // 1. 字段中文->英文
    // 2. 还原excel中的日期
    formatData(header, results) {
      const mapInfo = {
        '入职日期': 'timeOfEntry',
        '手机号': 'mobile',
        '姓名': 'username',
        '转正日期': 'correctionTime',
        '工号': 'workNumber',
        '部门': 'departmentName',
        '聘用形式': 'formOfEmployment'
      }

      // results: [{姓名：xxx, 手机号:xxxx},{姓名：xxx, 手机号:xxxx}]
      // ....
      // 1. 数组-->数组 map
      // data: [{username：xxx, mobile:xxxx},{username：xxx, mobile:xxxx}]
      const data = results.map(obj => {
        // obj是{姓名：xxx, 手机号:xxxx}
        // 希望得到新对象：key是英文的，value不变
        const newObj = {}
        // 对于所有的obj的属性来说
        // Object.keys(obj) ==> ['姓名', '手机号']
        Object.keys(obj).forEach(zhkey => {
          const enKey = mapInfo[zhkey] // 从中文的key 转成 英文的key
          // if (key是日期) {
          if (enKey === 'timeOfEntry' || enKey === 'correctionTime') {
            // 对日期做特殊处理(有一个专门的函数来处理excel读出来的日期时间)
            // new Date('2020-12-12') 做这个转换，是因为后端需要标准日期格式
            newObj[enKey] = new Date(formatExcelDate(obj[zhkey]))
          } else {
            newObj[enKey] = obj[zhkey] // value不变
          }
        })
        return newObj
      })

      return data
    },
    async handleSuccess({ header, results }) {
      console.log('做格式转换之前', results)

      // 1. 做格式转换
      const data = this.formatData(header, results)
      console.log('做格式转换之后', data)
      // 2. 发请求
      const res = await importEmployee(data)
      console.log('批量添加', res)
      this.$router.back()
      // 后退回到员工管理页面
      // console.log('handleSuccess', obj)
    }
  }
}
</script>
